home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / cstdio.arc / SRC.ARC / FNSINTR.A < prev    next >
Text File  |  1985-01-10  |  1KB  |  72 lines

  1. ;    fnsintr.a - intrinsic functions.
  2. ;    (C) Copyright 1984 Gregory R. Mansfield - All Rights Reserved.
  3. ;    G. R. Mansfield.  84/06/13.
  4. ;    Ver 1.1-5110.
  5.  
  6.     cseg
  7.     public    _cmp4
  8.     public    _shl4
  9.     public    _shr4
  10.     public    _switch
  11.  
  12.  
  13. ;    cmp4 - compare long.
  14.  
  15. _cmp4:    cmp    dx,bx
  16.     jnz    cmp4
  17.     jns    cmp2
  18.     cmp    ax,cx
  19.     jz    cmp4
  20.     mov    al,1
  21.     jb    cmp3
  22. cmp1:    cmp    al,2
  23.     ret
  24.  
  25. cmp2:    cmp    ax,cx
  26.     jz    cmp4
  27.     mov    al,1
  28.     jb    cmp1
  29. cmp3:    cmp    al,0
  30. cmp4:    ret
  31.  
  32.  
  33. ;    shl4 - shift left long.
  34.  
  35. _shl4:    mov    ch,0
  36.     jcxz    shl2
  37. shl1:    shl    ax,1
  38.     rcl    dx,1
  39.     loop    shl1
  40. shl2:    ret
  41.  
  42.  
  43. ;    shr4 - shift right long.
  44.  
  45. _shr4:    mov    ch,0
  46.     jcxz    shr2
  47. shr1:    shr    dx,1
  48.     rcr    ax,1
  49.     loop    shr1
  50. shr2:    ret
  51.  
  52.  
  53. ;    switch - integer switch list.
  54.  
  55. _switch:
  56.     pop    si        ; list address
  57.     mov    cx,cs:[si]    ; length
  58.     add    si,2
  59. swt1:    mov    ax,cs:[si]    ; list entry
  60.     cmp    ax,8000H
  61.     jz    swt2
  62.     cmp    bx,ax
  63.     jz    swt3        ; if match
  64.     add    si,4
  65.     loop    swt1
  66.     jmp    dx        ; default
  67.  
  68. swt2:    mov    dx,cs:[si+2]    ; default address
  69.     add    si,4
  70.     jmp    swt1
  71. swt3:    jmp    word cs:[si+2]    ; case
  72.